// #include<bits/stdc++.h>
// using namespace std;
// bool stc;
// const int N=(1<<20)+100,M=1e9+7;
// using ll=long long;
// using ul=unsigned long long;
// using vt=vector<int>;
// int T,n,m,f[305][305];
// int F[305][155][155],G[305][155][155];
// int H[305][155][155],ans;
// void add(int &x,int y){if((x+=y)>=M)x-=M;}
// void add(int &x,ll y,int z){x=(y*z+x)%M;}
// void del(int &x,int y){if((x-=y)<0)x+=M;}
// string s;
// int eq(char x,char y){
//     if(x=='x')return 1;
//     return x==y;
// }
// bool edc;
// int main(){
//     // double meg=fabs(&edc-&stc)/1048576,lim=1000;
//     // cerr<<meg<<endl,assert(meg<lim);
//     ios::sync_with_stdio(false),cin.tie(0);
//     freopen("bracket.in","r",stdin);
//     freopen("bracket.out","w",stdout);
//     int i,j,k,l,r,x,y,z;
//     cin>>n>>s,s='b'+s;
//     if(n&1)puts("0"),exit(0);
//     m=n>>1;
//     H[n+1][0][0]=1;
//     for(x=n;x;--x){
//         if(eq(s[x],')')){
//             for(i=1;i<=m;++i){
//                 for(j=i;j<=m;++j)
//                     add(H[x][i][j],H[x+1][i-1][j]);
//                 add(H[x][i][i],H[x+1][i-1][i-1]);
//             }
//         }if(eq(s[x],'(')){
//             for(i=1;i<=m;++i)
//                 for(j=i;j<=m;++j)
//                     add(H[x][i-1][j],H[x+1][i][j]);
//         }
//     }
//     f[n+1][0]=1;
//     for(x=n;x;--x){
//         if(eq(s[x],')')){
//             for(i=1;i<=n-x+1;++i)add(f[x][i],f[x+1][i-1]);
//         }if(eq(s[x],'(')){
//             for(i=1;i<=n-x+1;++i)add(f[x][i-1],f[x+1][i]);
//         }
//     }
//     for(i=2;i<=n;i+=2)add(ans,f[1][i]);
//     for(x=0;x<=n+1;++x)
//         for(i=0;i<=n+1;++i)f[x][i]=0;
//     f[0][0]=1;
//     for(x=1;x<=n;++x){
//         if(eq(s[x],'(')){
//             for(i=1;i<=x;++i)add(f[x][i],f[x-1][i-1]);
//         }if(eq(s[x],')')){
//             for(i=1;i<=x;++i)add(f[x][i-1],f[x-1][i]);
//         }
//     }
//     for(i=0;i<=n;i+=2)add(ans,f[n][i]);
//     F[0][0][0]=1;
//     for(x=1;x<=n;++x){
//         if(eq(s[x],'(')){
//             for(i=1;i<=m;++i){
//                 for(j=i;j<=m;++j)
//                     add(F[x][i][j],F[x-1][i-1][j]);
//                 add(F[x][i][i],F[x-1][i-1][i-1]);
//             }
//             for(l=0;l<=m;++l)
//                 for(r=l;r<=m;++r){
//                     int _l=max(l-1,0),_r=r-1;
//                     if(_l<=_r)add(G[x][_l][_r],G[x-1][l][r]);
//                 }
//             if(!(x&1)){
//                 for(l=z=m,k=0;~l;--l){
//                     int _l=l;if(_l&1)++_l;
//                     while(z+z>=_l)add(k,H[x+1][0][z--]);
//                     for(r=l;r<=m;++r){
//                         if(_l>r)continue;
//                         // if(k)cerr<<x<<" "<<l<<" "<<r<<" "<<G[x][l][r]<<endl;
//                         add(ans,k,G[x][l][r]);
//                     }
//                 }
//             }
//         }
//         if(eq(s[x],')')){
//             for(i=0;i<=m;++i)
//                 add(G[x][1][min(i+i+1,m)],F[x-1][0][i]);
//             for(i=1;i<=m;++i)
//                 for(j=i;j<=m;++j)
//                     add(F[x][i-1][j],F[x-1][i][j]);
//             for(l=0;l<=m;++l)
//                 for(r=l;r<=m;++r){
//                     int _l=l+1,_r=min(r+1,m);
//                     if(_l<=_r)add(G[x][_l][_r],G[x-1][l][r]);
//                 }
//         }
//     }printf("%d\n",ans);
//     return 0;
// }
#include<bits/stdc++.h>
using namespace std;
const int N=(1<<20)+100,M=1e9+7;
using ll=long long;
using ul=unsigned long long;
using vt=vector<int>;
int T,n,m,a[N],b[N],ans;
int ck(string &s){
    int k=0;
    for(char c:s){
        if(c=='(')++k;
        else --k;
        if(k<0)return 0;
    }return !k;
}
int sol(string s){
    int l,r,k;
    if(ck(s))return 1;
    for(l=0;l<n;++l){
        for(r=l;r<n;++r){
            s[r]=s[r]=='('?')':'(';
            if(ck(s))return 1;
        }
        for(r=l;r<n;++r)
            s[r]=s[r]=='('?')':'(';
    }return 0;
}
void dfs(int x,string s){
    if(x==n){
        ans+=sol(s);
    }else{
        if(s[x]=='x'){
            s[x]='(',dfs(x+1,s);
            s[x]=')',dfs(x+1,s);
        }else dfs(x+1,s);
    }
}
string s;
int main(){
    ios::sync_with_stdio(false),cin.tie(0);
    freopen("bracket.in","r",stdin);
    freopen("bracket.out","w",stdout);
    int i,j,k,l,r,x,y,z;
    cin>>n>>s,dfs(0,s);
    printf("%d\n",ans);
    return 0;
}